#ifndef __SCTLR__
#define __SCTLR__
#include "libc/stdint.h"

typedef union SystemControlRegisterEL1 {
	struct {
        uint64_t M          : 1;
        uint64_t A          : 1;
        uint64_t C          : 1;
        uint64_t SA         : 1;
        uint64_t SA0        : 1;
        uint64_t CP15BEN    : 1;
        uint64_t nAA        : 1;
        uint64_t ITD        : 1;
        uint64_t SED        : 1;
        uint64_t UMA        : 1;
        uint64_t EnRCTX     : 1;
        uint64_t EOS        : 1;
        uint64_t I          : 1;
        uint64_t EnDB       : 1;
        uint64_t DZE        : 1;
        uint64_t UCT        : 1;
        uint64_t nTWI       : 1;
        uint64_t RES0       : 1;
        uint64_t nTWE       : 1;
        uint64_t WXN        : 1;
        uint64_t TSCXT      : 1;
        uint64_t IESB       : 1;
        uint64_t EIS        : 1;
        uint64_t SPAN       : 1;
        uint64_t E0E        : 1;
        uint64_t EE         : 1;
        uint64_t UCI        : 1;
        uint64_t EnDA       : 1;
        uint64_t nTLSMD     : 1;
        uint64_t LSMAOE     : 1;
        uint64_t EnIB       : 1;
        uint64_t EnIA       : 1;	
        uint64_t RES1       : 3;
        uint64_t BT0        : 1;
        uint64_t BT1        : 1;
        uint64_t ITFSB      : 1;
        uint64_t TCF0       : 2;
        uint64_t TCF        : 2;
        uint64_t ATA0       : 1;
        uint64_t ATA        : 1;
        uint64_t DSSBS      : 1;
        uint64_t TWEDEn     : 1;
        uint64_t TWEDEL     : 4;
        uint64_t RES2       : 4;		
        uint64_t EnASR      : 1;
        uint64_t EnAS0      : 1;
        uint64_t EnALS      : 1;
        uint64_t EPAN       : 1;
        uint64_t RES3       : 6;																	
	} __attribute__((packed)) reg;
	uint64_t val;
} __attribute__((packed)) SystemControlRegisterEL1;

#endif /* __SCTLR__ */